from datetime import datetime, timedelta
import time
from openpyxl import load_workbook
import requests
import yaml

with open('config.yml', 'r', encoding='utf-8') as f:
    config = yaml.safe_load(f)

class CheckIfUpdateFile:
    def __init__(self):
        self.file_path = config['code_dir'] + '/运行日志.xlsx'
        
    def doCheck(self):
        # 读取检测时间
        # 加载一个已存在的Excel文件
        # 检查是否存在运行日志.xlsx文件
        try:
            wb = load_workbook(self.file_path)
        except FileNotFoundError:
            print("文件 '运行日志.xlsx' 不存在")
            return False
        # 检查是否存在指定的工作表
        if '运行日志' not in wb.sheetnames:
            print("工作表 '运行日志' 不存在")
            return False
        ws = wb['运行日志']
        
        now = datetime.now()
        
        # 获取在第二列第一行的时间
        last_check_time = ws.cell(row=1, column=2).value
        if last_check_time:
            print(f"最后检查时间: {last_check_time}")
        else:
            print("第二列第三行没有时间")
            # 写入检测时间
            ws.cell(row=1, column=2, value=now)
            wb.save(self.file_path)
            return False

        # 检查是否需要检测
        if now - last_check_time > timedelta(days=7):
            print('请及时更新收文本数据')
            # 写入检测时间
            ws.cell(row=1, column=2, value=now)
            wb.save(self.file_path)
            return True
        else:
            return False
        
    def updateCheckTime(self):
        # 加载一个已存在的Excel文件
        # 检查是否存在运行日志.xlsx文件
        try:
            wb = load_workbook(self.file_path)
        except FileNotFoundError:
            print("文件 '运行日志.xlsx' 不存在")
            return False
        # 检查是否存在指定的工作表
        if '运行日志' not in wb.sheetnames:
            print("工作表 '运行日志' 不存在")
            return False
        ws = wb['运行日志']
        
        now = datetime.now()
        
        # 写入检测时间
        ws.cell(row=1, column=2, value=now)
        wb.save(self.file_path)